{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Training LightGBM model on GPU",
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "8ee681b3cab9472288464fdf80693c6e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "IntProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_5c1c4d93291641559f6d93b1892fea91",
            "_dom_classes": [],
            "description": "Processing: ",
            "_model_name": "IntProgressModel",
            "bar_style": "",
            "max": 13,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 12,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_5a6a4f0a323a4daa86102db105e3d74a"
          }
        },
        "5c1c4d93291641559f6d93b1892fea91": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "5a6a4f0a323a4daa86102db105e3d74a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "ff10c25a56174172badfa0a4b2e3303e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "TextModel",
          "state": {
            "_view_name": "TextView",
            "style": "IPY_MODEL_d9d4492982e34abb8bdddbe04215c1dd",
            "_dom_classes": [],
            "description": "",
            "_model_name": "TextModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": "Following data types have been inferred automatically, if they are correct press enter to continue or type 'quit' otherwise.",
            "_view_count": null,
            "disabled": false,
            "_view_module_version": "1.5.0",
            "continuous_update": true,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_7ff6bda982ce4d8b8a8482062f4d90e7"
          }
        },
        "d9d4492982e34abb8bdddbe04215c1dd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "7ff6bda982ce4d8b8a8482062f4d90e7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": "100%",
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "e42a59c320bb41a4909111c017f2a2c0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "IntProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_8770095900034d968ea3bb7114f2aea1",
            "_dom_classes": [],
            "description": "Processing: ",
            "_model_name": "IntProgressModel",
            "bar_style": "",
            "max": 14,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 14,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_40a52b22f3c74f9cb92601a9335b11f6"
          }
        },
        "8770095900034d968ea3bb7114f2aea1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "40a52b22f3c74f9cb92601a9335b11f6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "5ed480b9b8df4018a30e5be63fbbcf5f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "IntProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_e99637a59a544b6badbf33007f55c873",
            "_dom_classes": [],
            "description": "Processing: ",
            "_model_name": "IntProgressModel",
            "bar_style": "",
            "max": 5,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 5,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_4679b95a7af6455ab2fcd4a73cdcf508"
          }
        },
        "e99637a59a544b6badbf33007f55c873": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "4679b95a7af6455ab2fcd4a73cdcf508": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "cc04386edc0e4715a360050759b97b4f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "IntProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_737a822faa684390ac7aed76ce9ee3c5",
            "_dom_classes": [],
            "description": "Processing: ",
            "_model_name": "IntProgressModel",
            "bar_style": "",
            "max": 5,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 5,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_8f169763f51c48d789ffbb36203813d1"
          }
        },
        "737a822faa684390ac7aed76ce9ee3c5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "8f169763f51c48d789ffbb36203813d1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TwuMD7ffQ70c",
        "colab_type": "text"
      },
      "source": [
        "# Utilizing GPU for training our model\n",
        "This notebook is an example of how to use GPU to train our model. The model implemented here is LightGBM (Light Gradient Boosting Machine). The features of LightGBM are:\n",
        "\n",
        "* Faster training speed and higher efficiency.\n",
        "\n",
        "* Lower memory usage.\n",
        "\n",
        "* Better accuracy.\n",
        "\n",
        "* Support of parallel and GPU learning.\n",
        "\n",
        "* Capable of handling large-scale data.\n",
        "\n",
        "LightGBM supports parallel and GPU learning, which is the reason why it's a great choice for Kagglers. The actual paper which introduced LightGBM used XGBoost as a baseline model and showed that LightGBM outperformed XGBoost on training time & the dataset size it can handle.\n",
        "\n",
        "This is the reason why this algorithm gain so much popularity in less time. \n",
        "\n",
        "Here, we will use the follwoing dataset:\n",
        "\n",
        "Link to the competition: https://www.kaggle.com/mlg-ulb/creditcardfraud\n",
        "THe dataset has 284K rows and 31 features. Also, this is a highly imabalanced dataset. Let's check how much time does LightGBM actually takes to train itself on GPU."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "c3-xLUMYic-n",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "dbe1b22b-6ad3-4269-f211-9e19586263ad"
      },
      "source": [
        "#Installing pycaret\n",
        "!pip install pycaret"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting pycaret\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/91/ae/000d825af8f7d9ff86808600f220e7ad57a873987fd6119c87dc4c5b1d91/pycaret-2.0-py3-none-any.whl (255kB)\n",
            "\r\u001b[K     |█▎                              | 10kB 23.6MB/s eta 0:00:01\r\u001b[K     |██▋                             | 20kB 6.1MB/s eta 0:00:01\r\u001b[K     |███▉                            | 30kB 7.4MB/s eta 0:00:01\r\u001b[K     |█████▏                          | 40kB 8.1MB/s eta 0:00:01\r\u001b[K     |██████▍                         | 51kB 7.2MB/s eta 0:00:01\r\u001b[K     |███████▊                        | 61kB 8.1MB/s eta 0:00:01\r\u001b[K     |█████████                       | 71kB 8.3MB/s eta 0:00:01\r\u001b[K     |██████████▎                     | 81kB 8.6MB/s eta 0:00:01\r\u001b[K     |███████████▌                    | 92kB 8.8MB/s eta 0:00:01\r\u001b[K     |████████████▉                   | 102kB 9.4MB/s eta 0:00:01\r\u001b[K     |██████████████                  | 112kB 9.4MB/s eta 0:00:01\r\u001b[K     |███████████████▍                | 122kB 9.4MB/s eta 0:00:01\r\u001b[K     |████████████████▊               | 133kB 9.4MB/s eta 0:00:01\r\u001b[K     |██████████████████              | 143kB 9.4MB/s eta 0:00:01\r\u001b[K     |███████████████████▎            | 153kB 9.4MB/s eta 0:00:01\r\u001b[K     |████████████████████▌           | 163kB 9.4MB/s eta 0:00:01\r\u001b[K     |█████████████████████▉          | 174kB 9.4MB/s eta 0:00:01\r\u001b[K     |███████████████████████         | 184kB 9.4MB/s eta 0:00:01\r\u001b[K     |████████████████████████▍       | 194kB 9.4MB/s eta 0:00:01\r\u001b[K     |█████████████████████████▋      | 204kB 9.4MB/s eta 0:00:01\r\u001b[K     |███████████████████████████     | 215kB 9.4MB/s eta 0:00:01\r\u001b[K     |████████████████████████████▏   | 225kB 9.4MB/s eta 0:00:01\r\u001b[K     |█████████████████████████████▌  | 235kB 9.4MB/s eta 0:00:01\r\u001b[K     |██████████████████████████████▊ | 245kB 9.4MB/s eta 0:00:01\r\u001b[K     |████████████████████████████████| 256kB 9.4MB/s \n",
            "\u001b[?25hRequirement already satisfied: plotly>=4.4.1 in /usr/local/lib/python3.6/dist-packages (from pycaret) (4.4.1)\n",
            "Requirement already satisfied: cufflinks>=0.17.0 in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.17.3)\n",
            "Collecting pyod\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/77/4e/5767edaccbfc227914ca774cb6ca9b628a08cbb59b9b4839296953a63d34/pyod-0.8.1.tar.gz (93kB)\n",
            "\u001b[K     |████████████████████████████████| 102kB 6.7MB/s \n",
            "\u001b[?25hRequirement already satisfied: joblib in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.16.0)\n",
            "Requirement already satisfied: seaborn in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.10.1)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from pycaret) (3.2.2)\n",
            "Requirement already satisfied: IPython in /usr/local/lib/python3.6/dist-packages (from pycaret) (5.5.0)\n",
            "Collecting mlflow\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/00/2f/2529268d85af0a1521b0b7c137b63b731dff4784e1322fb3055403a959fb/mlflow-1.10.0-py3-none-any.whl (12.4MB)\n",
            "\u001b[K     |████████████████████████████████| 12.4MB 246kB/s \n",
            "\u001b[?25hCollecting scikit-learn>=0.23\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/5c/a1/273def87037a7fb010512bbc5901c31cfddfca8080bc63b42b26e3cc55b3/scikit_learn-0.23.2-cp36-cp36m-manylinux1_x86_64.whl (6.8MB)\n",
            "\u001b[K     |████████████████████████████████| 6.8MB 50.2MB/s \n",
            "\u001b[?25hRequirement already satisfied: imbalanced-learn in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.4.3)\n",
            "Collecting kmodes>=0.10.1\n",
            "  Downloading https://files.pythonhosted.org/packages/b2/55/d8ec1ae1f7e1e202a8a4184c6852a3ee993b202b0459672c699d0ac18fc8/kmodes-0.10.2-py2.py3-none-any.whl\n",
            "Requirement already satisfied: ipywidgets in /usr/local/lib/python3.6/dist-packages (from pycaret) (7.5.1)\n",
            "Collecting pandas-profiling>=2.3.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/b9/94/ef8ef4517540d13406fcc0b8adfd75336e014242c69bd4162ab46931f36a/pandas_profiling-2.8.0-py2.py3-none-any.whl (259kB)\n",
            "\u001b[K     |████████████████████████████████| 266kB 54.6MB/s \n",
            "\u001b[?25hRequirement already satisfied: xgboost>=0.90 in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.90)\n",
            "Collecting catboost\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/96/6c/6608210b29649267de52001b09e369777ee2a5cfe1c71fa75eba82a4f2dc/catboost-0.24-cp36-none-manylinux1_x86_64.whl (65.9MB)\n",
            "\u001b[K     |████████████████████████████████| 65.9MB 44kB/s \n",
            "\u001b[?25hCollecting pyLDAvis\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/a5/3a/af82e070a8a96e13217c8f362f9a73e82d61ac8fff3a2561946a97f96266/pyLDAvis-2.1.2.tar.gz (1.6MB)\n",
            "\u001b[K     |████████████████████████████████| 1.6MB 48.1MB/s \n",
            "\u001b[?25hRequirement already satisfied: nltk in /usr/local/lib/python3.6/dist-packages (from pycaret) (3.2.5)\n",
            "Collecting yellowbrick>=1.0.1\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/13/95/a14e4fdfb8b1c8753bbe74a626e910a98219ef9c87c6763585bbd30d84cf/yellowbrick-1.1-py3-none-any.whl (263kB)\n",
            "\u001b[K     |████████████████████████████████| 266kB 52.8MB/s \n",
            "\u001b[?25hCollecting lightgbm>=2.3.1\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/0b/9d/ddcb2f43aca194987f1a99e27edf41cf9bc39ea750c3371c2a62698c509a/lightgbm-2.3.1-py2.py3-none-manylinux1_x86_64.whl (1.2MB)\n",
            "\u001b[K     |████████████████████████████████| 1.2MB 45.8MB/s \n",
            "\u001b[?25hRequirement already satisfied: gensim in /usr/local/lib/python3.6/dist-packages (from pycaret) (3.6.0)\n",
            "Collecting DateTime>=4.3\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/73/22/a5297f3a1f92468cc737f8ce7ba6e5f245fcfafeae810ba37bd1039ea01c/DateTime-4.3-py2.py3-none-any.whl (60kB)\n",
            "\u001b[K     |████████████████████████████████| 61kB 9.2MB/s \n",
            "\u001b[?25hRequirement already satisfied: textblob in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.15.3)\n",
            "Collecting datefinder>=0.7.0\n",
            "  Downloading https://files.pythonhosted.org/packages/0c/4f/29524c9ca35d2ba1a8a3c6c895b90fc92525cf0fe357f747133890953ebe/datefinder-0.7.1-py2.py3-none-any.whl\n",
            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.6/dist-packages (from pycaret) (1.18.5)\n",
            "Requirement already satisfied: spacy in /usr/local/lib/python3.6/dist-packages (from pycaret) (2.2.4)\n",
            "Requirement already satisfied: pandas in /usr/local/lib/python3.6/dist-packages (from pycaret) (1.0.5)\n",
            "Requirement already satisfied: mlxtend in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.14.0)\n",
            "Requirement already satisfied: wordcloud in /usr/local/lib/python3.6/dist-packages (from pycaret) (1.5.0)\n",
            "Requirement already satisfied: umap-learn in /usr/local/lib/python3.6/dist-packages (from pycaret) (0.4.6)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from plotly>=4.4.1->pycaret) (1.15.0)\n",
            "Requirement already satisfied: retrying>=1.3.3 in /usr/local/lib/python3.6/dist-packages (from plotly>=4.4.1->pycaret) (1.3.3)\n",
            "Requirement already satisfied: colorlover>=0.2.1 in /usr/local/lib/python3.6/dist-packages (from cufflinks>=0.17.0->pycaret) (0.3.0)\n",
            "Requirement already satisfied: setuptools>=34.4.1 in /usr/local/lib/python3.6/dist-packages (from cufflinks>=0.17.0->pycaret) (49.2.0)\n",
            "Collecting combo\n",
            "  Downloading https://files.pythonhosted.org/packages/0a/2a/61b6ac584e75d8df16dc27962aa5fe99d76b09da5b6710e83d4862c84001/combo-0.1.1.tar.gz\n",
            "Requirement already satisfied: numba>=0.35 in /usr/local/lib/python3.6/dist-packages (from pyod->pycaret) (0.48.0)\n",
            "Requirement already satisfied: scipy>=0.19.1 in /usr/local/lib/python3.6/dist-packages (from pyod->pycaret) (1.4.1)\n",
            "Collecting suod\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/a1/87/9170cabe1b5e10a7d095c0e28f2e30e7c1886a13f063de85d3cfacc06f4b/suod-0.0.4.tar.gz (2.1MB)\n",
            "\u001b[K     |████████████████████████████████| 2.1MB 45.5MB/s \n",
            "\u001b[?25hRequirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pycaret) (2.8.1)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pycaret) (0.10.0)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pycaret) (1.2.0)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->pycaret) (2.4.7)\n",
            "Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/dist-packages (from IPython->pycaret) (0.7.5)\n",
            "Requirement already satisfied: decorator in /usr/local/lib/python3.6/dist-packages (from IPython->pycaret) (4.4.2)\n",
            "Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.6/dist-packages (from IPython->pycaret) (0.8.1)\n",
            "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from IPython->pycaret) (4.8.0)\n",
            "Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.6/dist-packages (from IPython->pycaret) (4.3.3)\n",
            "Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.6/dist-packages (from IPython->pycaret) (1.0.18)\n",
            "Requirement already satisfied: pygments in /usr/local/lib/python3.6/dist-packages (from IPython->pycaret) (2.1.3)\n",
            "Collecting databricks-cli>=0.8.7\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/1e/57/5c2d6b83cb8753d12f548e89f91037632baa8289677c1b2ab2adf14bf6b2/databricks-cli-0.11.0.tar.gz (49kB)\n",
            "\u001b[K     |████████████████████████████████| 51kB 7.5MB/s \n",
            "\u001b[?25hRequirement already satisfied: click>=7.0 in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (7.1.2)\n",
            "Collecting gunicorn; platform_system != \"Windows\"\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/69/ca/926f7cd3a2014b16870086b2d0fdc84a9e49473c68a8dff8b57f7c156f43/gunicorn-20.0.4-py2.py3-none-any.whl (77kB)\n",
            "\u001b[K     |████████████████████████████████| 81kB 10.6MB/s \n",
            "\u001b[?25hCollecting docker>=4.0.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/65/10/d18c41f2bd846c89c9030424a58be3d9752fac27780f8608284fa893feb4/docker-4.3.0-py2.py3-none-any.whl (145kB)\n",
            "\u001b[K     |████████████████████████████████| 153kB 26.6MB/s \n",
            "\u001b[?25hCollecting prometheus-flask-exporter\n",
            "  Downloading https://files.pythonhosted.org/packages/84/b0/7549899a75e7ef0be5f8969094d0709e5dcc51dc21d58cc86b8d69441dce/prometheus_flask_exporter-0.15.4.tar.gz\n",
            "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (1.3.0)\n",
            "Collecting gorilla\n",
            "  Downloading https://files.pythonhosted.org/packages/e3/56/5a683944cbfc77e429c6f03c636ca50504a785f60ffae91ddd7f5f7bb520/gorilla-0.3.0-py2.py3-none-any.whl\n",
            "Requirement already satisfied: Flask in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (1.1.2)\n",
            "Requirement already satisfied: requests>=2.17.3 in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (2.23.0)\n",
            "Requirement already satisfied: protobuf>=3.6.0 in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (3.12.4)\n",
            "Collecting azure-storage-blob>=12.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/6d/3d/31614573e8a197db12d8ab47a7fd813f15bd4a4b5c64e85d23b865de5b9b/azure_storage_blob-12.3.2-py2.py3-none-any.whl (280kB)\n",
            "\u001b[K     |████████████████████████████████| 286kB 53.8MB/s \n",
            "\u001b[?25hRequirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (3.13)\n",
            "Collecting gitpython>=2.1.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/f9/1e/a45320cab182bf1c8656107b3d4c042e659742822fc6bff150d769a984dd/GitPython-3.1.7-py3-none-any.whl (158kB)\n",
            "\u001b[K     |████████████████████████████████| 163kB 53.9MB/s \n",
            "\u001b[?25hCollecting sqlalchemy<=1.3.13\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/af/47/35edeb0f86c0b44934c05d961c893e223ef27e79e1f53b5e6f14820ff553/SQLAlchemy-1.3.13.tar.gz (6.0MB)\n",
            "\u001b[K     |████████████████████████████████| 6.0MB 48.3MB/s \n",
            "\u001b[?25hRequirement already satisfied: entrypoints in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (0.3)\n",
            "Collecting querystring-parser\n",
            "  Downloading https://files.pythonhosted.org/packages/4a/fa/f54f5662e0eababf0c49e92fd94bf178888562c0e7b677c8941bbbcd1bd6/querystring_parser-1.2.4.tar.gz\n",
            "Collecting alembic\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/60/1e/cabc75a189de0fbb2841d0975243e59bde8b7822bacbb95008ac6fe9ad47/alembic-1.4.2.tar.gz (1.1MB)\n",
            "\u001b[K     |████████████████████████████████| 1.1MB 43.6MB/s \n",
            "\u001b[?25h  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
            "    Preparing wheel metadata ... \u001b[?25l\u001b[?25hdone\n",
            "Requirement already satisfied: sqlparse in /usr/local/lib/python3.6/dist-packages (from mlflow->pycaret) (0.3.1)\n",
            "Collecting threadpoolctl>=2.0.0\n",
            "  Downloading https://files.pythonhosted.org/packages/f7/12/ec3f2e203afa394a149911729357aa48affc59c20e2c1c8297a60f33f133/threadpoolctl-2.1.0-py3-none-any.whl\n",
            "Requirement already satisfied: widgetsnbextension~=3.5.0 in /usr/local/lib/python3.6/dist-packages (from ipywidgets->pycaret) (3.5.1)\n",
            "Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.6/dist-packages (from ipywidgets->pycaret) (4.10.1)\n",
            "Requirement already satisfied: nbformat>=4.2.0 in /usr/local/lib/python3.6/dist-packages (from ipywidgets->pycaret) (5.0.7)\n",
            "Collecting visions[type_image_path]==0.4.4\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/4a/03/5a45d542257830cf1d9da2cdc1c0bc6f55a9212937b70fdd6d7031b46d6c/visions-0.4.4-py3-none-any.whl (59kB)\n",
            "\u001b[K     |████████████████████████████████| 61kB 8.8MB/s \n",
            "\u001b[?25hRequirement already satisfied: jinja2>=2.11.1 in /usr/local/lib/python3.6/dist-packages (from pandas-profiling>=2.3.0->pycaret) (2.11.2)\n",
            "Collecting phik>=0.9.10\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/01/5a/7ef1c04ce62cd72f900c06298dc2385840550d5c653a0dbc19109a5477e6/phik-0.10.0-py3-none-any.whl (599kB)\n",
            "\u001b[K     |████████████████████████████████| 604kB 41.8MB/s \n",
            "\u001b[?25hRequirement already satisfied: missingno>=0.4.2 in /usr/local/lib/python3.6/dist-packages (from pandas-profiling>=2.3.0->pycaret) (0.4.2)\n",
            "Requirement already satisfied: astropy>=4.0 in /usr/local/lib/python3.6/dist-packages (from pandas-profiling>=2.3.0->pycaret) (4.0.1.post1)\n",
            "Collecting tangled-up-in-unicode>=0.0.6\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/4a/e2/e588ab9298d4989ce7fdb2b97d18aac878d99dbdc379a4476a09d9271b68/tangled_up_in_unicode-0.0.6-py3-none-any.whl (3.1MB)\n",
            "\u001b[K     |████████████████████████████████| 3.1MB 49.2MB/s \n",
            "\u001b[?25hCollecting htmlmin>=0.1.12\n",
            "  Downloading https://files.pythonhosted.org/packages/b3/e7/fcd59e12169de19f0131ff2812077f964c6b960e7c09804d30a7bf2ab461/htmlmin-0.1.12.tar.gz\n",
            "Collecting tqdm>=4.43.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/28/7e/281edb5bc3274dfb894d90f4dbacfceaca381c2435ec6187a2c6f329aed7/tqdm-4.48.2-py2.py3-none-any.whl (68kB)\n",
            "\u001b[K     |████████████████████████████████| 71kB 10.8MB/s \n",
            "\u001b[?25hCollecting confuse>=1.0.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/b5/6d/bedc0d1068bd244cee05843313cbec6cebb9f01f925538269bababc6d887/confuse-1.3.0-py2.py3-none-any.whl (64kB)\n",
            "\u001b[K     |████████████████████████████████| 71kB 10.6MB/s \n",
            "\u001b[?25hRequirement already satisfied: graphviz in /usr/local/lib/python3.6/dist-packages (from catboost->pycaret) (0.10.1)\n",
            "Requirement already satisfied: wheel>=0.23.0 in /usr/local/lib/python3.6/dist-packages (from pyLDAvis->pycaret) (0.34.2)\n",
            "Requirement already satisfied: numexpr in /usr/local/lib/python3.6/dist-packages (from pyLDAvis->pycaret) (2.7.1)\n",
            "Requirement already satisfied: pytest in /usr/local/lib/python3.6/dist-packages (from pyLDAvis->pycaret) (3.6.4)\n",
            "Requirement already satisfied: future in /usr/local/lib/python3.6/dist-packages (from pyLDAvis->pycaret) (0.16.0)\n",
            "Collecting funcy\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/ce/4b/6ffa76544e46614123de31574ad95758c421aae391a1764921b8a81e1eae/funcy-1.14.tar.gz (548kB)\n",
            "\u001b[K     |████████████████████████████████| 552kB 53.9MB/s \n",
            "\u001b[?25hRequirement already satisfied: smart-open>=1.2.1 in /usr/local/lib/python3.6/dist-packages (from gensim->pycaret) (2.1.0)\n",
            "Collecting zope.interface\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/57/33/565274c28a11af60b7cfc0519d46bde4125fcd7d32ebc0a81b480d0e8da6/zope.interface-5.1.0-cp36-cp36m-manylinux2010_x86_64.whl (234kB)\n",
            "\u001b[K     |████████████████████████████████| 235kB 37.0MB/s \n",
            "\u001b[?25hRequirement already satisfied: pytz in /usr/local/lib/python3.6/dist-packages (from DateTime>=4.3->pycaret) (2018.9)\n",
            "Requirement already satisfied: regex>=2017.02.08 in /usr/local/lib/python3.6/dist-packages (from datefinder>=0.7.0->pycaret) (2019.12.20)\n",
            "Requirement already satisfied: wasabi<1.1.0,>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (0.7.1)\n",
            "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (1.0.2)\n",
            "Requirement already satisfied: plac<1.2.0,>=0.9.6 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (1.1.3)\n",
            "Requirement already satisfied: thinc==7.4.0 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (7.4.0)\n",
            "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (3.0.2)\n",
            "Requirement already satisfied: srsly<1.1.0,>=1.0.2 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (1.0.2)\n",
            "Requirement already satisfied: blis<0.5.0,>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (0.4.1)\n",
            "Requirement already satisfied: catalogue<1.1.0,>=0.0.7 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (1.0.0)\n",
            "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.6/dist-packages (from spacy->pycaret) (2.0.3)\n",
            "Requirement already satisfied: pillow in /usr/local/lib/python3.6/dist-packages (from wordcloud->pycaret) (7.0.0)\n",
            "Requirement already satisfied: llvmlite<0.32.0,>=0.31.0dev0 in /usr/local/lib/python3.6/dist-packages (from numba>=0.35->pyod->pycaret) (0.31.0)\n",
            "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.6/dist-packages (from pexpect; sys_platform != \"win32\"->IPython->pycaret) (0.6.0)\n",
            "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.2->IPython->pycaret) (0.2.0)\n",
            "Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->IPython->pycaret) (0.2.5)\n",
            "Requirement already satisfied: tabulate>=0.7.7 in /usr/local/lib/python3.6/dist-packages (from databricks-cli>=0.8.7->mlflow->pycaret) (0.8.7)\n",
            "Collecting websocket-client>=0.32.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/4c/5f/f61b420143ed1c8dc69f9eaec5ff1ac36109d52c80de49d66e0c36c3dfdf/websocket_client-0.57.0-py2.py3-none-any.whl (200kB)\n",
            "\u001b[K     |████████████████████████████████| 204kB 57.0MB/s \n",
            "\u001b[?25hRequirement already satisfied: prometheus_client in /usr/local/lib/python3.6/dist-packages (from prometheus-flask-exporter->mlflow->pycaret) (0.8.0)\n",
            "Requirement already satisfied: Werkzeug>=0.15 in /usr/local/lib/python3.6/dist-packages (from Flask->mlflow->pycaret) (1.0.1)\n",
            "Requirement already satisfied: itsdangerous>=0.24 in /usr/local/lib/python3.6/dist-packages (from Flask->mlflow->pycaret) (1.1.0)\n",
            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests>=2.17.3->mlflow->pycaret) (1.24.3)\n",
            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests>=2.17.3->mlflow->pycaret) (3.0.4)\n",
            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests>=2.17.3->mlflow->pycaret) (2.10)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests>=2.17.3->mlflow->pycaret) (2020.6.20)\n",
            "Collecting cryptography>=2.1.4\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/ba/91/84a29d6a27fd6dfc21f475704c4d2053d58ed7a4033c2b0ce1b4ca4d03d9/cryptography-3.0-cp35-abi3-manylinux2010_x86_64.whl (2.7MB)\n",
            "\u001b[K     |████████████████████████████████| 2.7MB 46.0MB/s \n",
            "\u001b[?25hCollecting msrest>=0.6.10\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/d9/ed/8e1b75721ad983c1672cd968ad3ae374d2e94767edff6f0b72a15dfde933/msrest-0.6.18-py2.py3-none-any.whl (84kB)\n",
            "\u001b[K     |████████████████████████████████| 92kB 12.4MB/s \n",
            "\u001b[?25hCollecting azure-core<2.0.0,>=1.6.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/5b/e3/acb0c45c0b7afa33eca9fadb47f32cbfb95161e3719fcbe953d689b881bc/azure_core-1.8.0-py2.py3-none-any.whl (121kB)\n",
            "\u001b[K     |████████████████████████████████| 122kB 62.7MB/s \n",
            "\u001b[?25hCollecting gitdb<5,>=4.0.1\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/48/11/d1800bca0a3bae820b84b7d813ad1eff15a48a64caea9c823fc8c1b119e8/gitdb-4.0.5-py3-none-any.whl (63kB)\n",
            "\u001b[K     |████████████████████████████████| 71kB 9.6MB/s \n",
            "\u001b[?25hCollecting python-editor>=0.3\n",
            "  Downloading https://files.pythonhosted.org/packages/c6/d3/201fc3abe391bbae6606e6f1d598c15d367033332bd54352b12f35513717/python_editor-1.0.4-py3-none-any.whl\n",
            "Collecting Mako\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/a6/37/0e706200d22172eb8fa17d68a7ae22dec7631a0a92266634fb518a88a5b2/Mako-1.1.3-py2.py3-none-any.whl (75kB)\n",
            "\u001b[K     |████████████████████████████████| 81kB 11.5MB/s \n",
            "\u001b[?25hRequirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.6/dist-packages (from widgetsnbextension~=3.5.0->ipywidgets->pycaret) (5.3.1)\n",
            "Requirement already satisfied: tornado>=4.0 in /usr/local/lib/python3.6/dist-packages (from ipykernel>=4.5.1->ipywidgets->pycaret) (5.1.1)\n",
            "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.6/dist-packages (from ipykernel>=4.5.1->ipywidgets->pycaret) (5.3.5)\n",
            "Requirement already satisfied: jupyter-core in /usr/local/lib/python3.6/dist-packages (from nbformat>=4.2.0->ipywidgets->pycaret) (4.6.3)\n",
            "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.6/dist-packages (from nbformat>=4.2.0->ipywidgets->pycaret) (2.6.0)\n",
            "Requirement already satisfied: attrs>=19.3.0 in /usr/local/lib/python3.6/dist-packages (from visions[type_image_path]==0.4.4->pandas-profiling>=2.3.0->pycaret) (19.3.0)\n",
            "Requirement already satisfied: networkx>=2.4 in /usr/local/lib/python3.6/dist-packages (from visions[type_image_path]==0.4.4->pandas-profiling>=2.3.0->pycaret) (2.4)\n",
            "Collecting imagehash; extra == \"type_image_path\"\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/1a/5d/cc81830be3c4705a46cdbca74439b67f1017881383ba0127c41c4cecb7b3/ImageHash-4.1.0.tar.gz (291kB)\n",
            "\u001b[K     |████████████████████████████████| 296kB 60.4MB/s \n",
            "\u001b[?25hRequirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from jinja2>=2.11.1->pandas-profiling>=2.3.0->pycaret) (1.1.1)\n",
            "Requirement already satisfied: atomicwrites>=1.0 in /usr/local/lib/python3.6/dist-packages (from pytest->pyLDAvis->pycaret) (1.4.0)\n",
            "Requirement already satisfied: more-itertools>=4.0.0 in /usr/local/lib/python3.6/dist-packages (from pytest->pyLDAvis->pycaret) (8.4.0)\n",
            "Requirement already satisfied: py>=1.5.0 in /usr/local/lib/python3.6/dist-packages (from pytest->pyLDAvis->pycaret) (1.9.0)\n",
            "Requirement already satisfied: pluggy<0.8,>=0.5 in /usr/local/lib/python3.6/dist-packages (from pytest->pyLDAvis->pycaret) (0.7.1)\n",
            "Requirement already satisfied: boto3 in /usr/local/lib/python3.6/dist-packages (from smart-open>=1.2.1->gensim->pycaret) (1.14.37)\n",
            "Requirement already satisfied: boto in /usr/local/lib/python3.6/dist-packages (from smart-open>=1.2.1->gensim->pycaret) (2.49.0)\n",
            "Requirement already satisfied: importlib-metadata>=0.20; python_version < \"3.8\" in /usr/local/lib/python3.6/dist-packages (from catalogue<1.1.0,>=0.0.7->spacy->pycaret) (1.7.0)\n",
            "Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/local/lib/python3.6/dist-packages (from cryptography>=2.1.4->azure-storage-blob>=12.0->mlflow->pycaret) (1.14.1)\n",
            "Collecting isodate>=0.6.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/9b/9f/b36f7774ff5ea8e428fdcfc4bb332c39ee5b9362ddd3d40d9516a55221b2/isodate-0.6.0-py2.py3-none-any.whl (45kB)\n",
            "\u001b[K     |████████████████████████████████| 51kB 7.4MB/s \n",
            "\u001b[?25hRequirement already satisfied: requests-oauthlib>=0.5.0 in /usr/local/lib/python3.6/dist-packages (from msrest>=0.6.10->azure-storage-blob>=12.0->mlflow->pycaret) (1.3.0)\n",
            "Collecting smmap<4,>=3.0.1\n",
            "  Downloading https://files.pythonhosted.org/packages/b0/9a/4d409a6234eb940e6a78dfdfc66156e7522262f5f2fecca07dc55915952d/smmap-3.0.4-py2.py3-none-any.whl\n",
            "Requirement already satisfied: Send2Trash in /usr/local/lib/python3.6/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (1.5.0)\n",
            "Requirement already satisfied: nbconvert in /usr/local/lib/python3.6/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (5.6.1)\n",
            "Requirement already satisfied: terminado>=0.8.1 in /usr/local/lib/python3.6/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (0.8.3)\n",
            "Requirement already satisfied: pyzmq>=13 in /usr/local/lib/python3.6/dist-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets->pycaret) (19.0.2)\n",
            "Requirement already satisfied: PyWavelets in /usr/local/lib/python3.6/dist-packages (from imagehash; extra == \"type_image_path\"->visions[type_image_path]==0.4.4->pandas-profiling>=2.3.0->pycaret) (1.1.1)\n",
            "Requirement already satisfied: s3transfer<0.4.0,>=0.3.0 in /usr/local/lib/python3.6/dist-packages (from boto3->smart-open>=1.2.1->gensim->pycaret) (0.3.3)\n",
            "Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /usr/local/lib/python3.6/dist-packages (from boto3->smart-open>=1.2.1->gensim->pycaret) (0.10.0)\n",
            "Requirement already satisfied: botocore<1.18.0,>=1.17.37 in /usr/local/lib/python3.6/dist-packages (from boto3->smart-open>=1.2.1->gensim->pycaret) (1.17.37)\n",
            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/dist-packages (from importlib-metadata>=0.20; python_version < \"3.8\"->catalogue<1.1.0,>=0.0.7->spacy->pycaret) (3.1.0)\n",
            "Requirement already satisfied: pycparser in /usr/local/lib/python3.6/dist-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.1.4->azure-storage-blob>=12.0->mlflow->pycaret) (2.20)\n",
            "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from requests-oauthlib>=0.5.0->msrest>=0.6.10->azure-storage-blob>=12.0->mlflow->pycaret) (3.1.0)\n",
            "Requirement already satisfied: testpath in /usr/local/lib/python3.6/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (0.4.4)\n",
            "Requirement already satisfied: defusedxml in /usr/local/lib/python3.6/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (0.6.0)\n",
            "Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (1.4.2)\n",
            "Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (0.8.4)\n",
            "Requirement already satisfied: bleach in /usr/local/lib/python3.6/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (3.1.5)\n",
            "Requirement already satisfied: docutils<0.16,>=0.10 in /usr/local/lib/python3.6/dist-packages (from botocore<1.18.0,>=1.17.37->boto3->smart-open>=1.2.1->gensim->pycaret) (0.15.2)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.6/dist-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (20.4)\n",
            "Requirement already satisfied: webencodings in /usr/local/lib/python3.6/dist-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets->pycaret) (0.5.1)\n",
            "Building wheels for collected packages: alembic\n",
            "  Building wheel for alembic (PEP 517) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for alembic: filename=alembic-1.4.2-cp36-none-any.whl size=159543 sha256=6809b883913ee22369d1d35369b7797b31cb46b4948130df6300aa2d00d358cf\n",
            "  Stored in directory: /root/.cache/pip/wheels/1f/04/83/76023f7a4c14688c0b5c2682a96392cfdd3ee4449eaaa287ef\n",
            "Successfully built alembic\n",
            "Building wheels for collected packages: pyod, pyLDAvis, combo, suod, databricks-cli, prometheus-flask-exporter, sqlalchemy, querystring-parser, htmlmin, funcy, imagehash\n",
            "  Building wheel for pyod (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for pyod: filename=pyod-0.8.1-cp36-none-any.whl size=105653 sha256=84c4a03815ef1c52de817baaec182b341c71ed5b3e05097b8c550172497b5dda\n",
            "  Stored in directory: /root/.cache/pip/wheels/2e/ca/18/727e9d98a41f5f4385a97d5b429f3a9c8fbee13f9780c18642\n",
            "  Building wheel for pyLDAvis (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for pyLDAvis: filename=pyLDAvis-2.1.2-py2.py3-none-any.whl size=97711 sha256=9748f1e83f3ebf4106072fa7fcb0c8103f0da913d211d64e9f696d6e1bb3e0f6\n",
            "  Stored in directory: /root/.cache/pip/wheels/98/71/24/513a99e58bb6b8465bae4d2d5e9dba8f0bef8179e3051ac414\n",
            "  Building wheel for combo (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for combo: filename=combo-0.1.1-cp36-none-any.whl size=42111 sha256=9ca3e1a737b9b36106095e02017103760f1239f0f3f7e019efe40e304942bfb4\n",
            "  Stored in directory: /root/.cache/pip/wheels/55/ec/e5/a2331372c676c467e70c6646e646edf6997d5c4905b8c0f5e6\n",
            "  Building wheel for suod (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for suod: filename=suod-0.0.4-cp36-none-any.whl size=2167157 sha256=3e8b221561f460a2d363577e78f34a0d9f5efd8678aa73d6f9f1e5cb4d7c3f0e\n",
            "  Stored in directory: /root/.cache/pip/wheels/57/55/e5/a4fca65bba231f6d0115059b589148774b41faea25b3f2aa27\n",
            "  Building wheel for databricks-cli (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for databricks-cli: filename=databricks_cli-0.11.0-cp36-none-any.whl size=90300 sha256=aa3a0729fc6b656c44ddb03f2415993eaedc928767d35187602f8ca252c0f200\n",
            "  Stored in directory: /root/.cache/pip/wheels/63/d0/4f/3deeca1f4c47a6aca7c2c6a6e2bf272391565dc86a7718a59b\n",
            "  Building wheel for prometheus-flask-exporter (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for prometheus-flask-exporter: filename=prometheus_flask_exporter-0.15.4-cp36-none-any.whl size=16454 sha256=48e793cbd9a4cde22745db0858295a9318de69e097a2b703e0cdd510d6364a9a\n",
            "  Stored in directory: /root/.cache/pip/wheels/4f/b4/70/b18fa12c1c0a30fd542767dbbcdac225c6aae012fa1b3124e4\n",
            "  Building wheel for sqlalchemy (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for sqlalchemy: filename=SQLAlchemy-1.3.13-cp36-cp36m-linux_x86_64.whl size=1217162 sha256=155a96d8029d3172aefbcd295a602423974536d61d00fb3b962b4e21be8815af\n",
            "  Stored in directory: /root/.cache/pip/wheels/b3/35/98/4c9cb3fd63d21d5606b972dd70643769745adf60e622467b71\n",
            "  Building wheel for querystring-parser (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for querystring-parser: filename=querystring_parser-1.2.4-cp36-none-any.whl size=7079 sha256=465af6024662fbf03b7689b1c2455a07308b93efb9146b9ccf79e899d5cc7900\n",
            "  Stored in directory: /root/.cache/pip/wheels/1e/41/34/23ebf5d1089a9aed847951e0ee375426eb4ad0a7079d88d41e\n",
            "  Building wheel for htmlmin (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for htmlmin: filename=htmlmin-0.1.12-cp36-none-any.whl size=27084 sha256=3732c5d51d1198e989a21c217f96c7592d0ff5bc419866d0eaf8fb1cd3fb3545\n",
            "  Stored in directory: /root/.cache/pip/wheels/43/07/ac/7c5a9d708d65247ac1f94066cf1db075540b85716c30255459\n",
            "  Building wheel for funcy (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for funcy: filename=funcy-1.14-py2.py3-none-any.whl size=32042 sha256=74603d46b1e265c49299057963fefd746bc10e586ffe86dfc90179557f62d46a\n",
            "  Stored in directory: /root/.cache/pip/wheels/20/5a/d8/1d875df03deae6f178dfdf70238cca33f948ef8a6f5209f2eb\n",
            "  Building wheel for imagehash (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for imagehash: filename=ImageHash-4.1.0-py2.py3-none-any.whl size=291990 sha256=f839ae7030772fbb93ceddb6ac352a8f77c1b485a4b56b05f00559785ce51255\n",
            "  Stored in directory: /root/.cache/pip/wheels/07/1c/dc/6831446f09feb8cc199ec73a0f2f0703253f6ae013a22f4be9\n",
            "Successfully built pyod pyLDAvis combo suod databricks-cli prometheus-flask-exporter sqlalchemy querystring-parser htmlmin funcy imagehash\n",
            "Installing collected packages: threadpoolctl, scikit-learn, combo, suod, pyod, databricks-cli, gunicorn, websocket-client, docker, prometheus-flask-exporter, gorilla, cryptography, isodate, msrest, azure-core, azure-storage-blob, smmap, gitdb, gitpython, sqlalchemy, querystring-parser, python-editor, Mako, alembic, mlflow, kmodes, tangled-up-in-unicode, imagehash, visions, phik, htmlmin, tqdm, confuse, pandas-profiling, catboost, funcy, pyLDAvis, yellowbrick, lightgbm, zope.interface, DateTime, datefinder, pycaret\n",
            "  Found existing installation: scikit-learn 0.22.2.post1\n",
            "    Uninstalling scikit-learn-0.22.2.post1:\n",
            "      Successfully uninstalled scikit-learn-0.22.2.post1\n",
            "  Found existing installation: SQLAlchemy 1.3.18\n",
            "    Uninstalling SQLAlchemy-1.3.18:\n",
            "      Successfully uninstalled SQLAlchemy-1.3.18\n",
            "  Found existing installation: tqdm 4.41.1\n",
            "    Uninstalling tqdm-4.41.1:\n",
            "      Successfully uninstalled tqdm-4.41.1\n",
            "  Found existing installation: pandas-profiling 1.4.1\n",
            "    Uninstalling pandas-profiling-1.4.1:\n",
            "      Successfully uninstalled pandas-profiling-1.4.1\n",
            "  Found existing installation: yellowbrick 0.9.1\n",
            "    Uninstalling yellowbrick-0.9.1:\n",
            "      Successfully uninstalled yellowbrick-0.9.1\n",
            "  Found existing installation: lightgbm 2.2.3\n",
            "    Uninstalling lightgbm-2.2.3:\n",
            "      Successfully uninstalled lightgbm-2.2.3\n",
            "Successfully installed DateTime-4.3 Mako-1.1.3 alembic-1.4.2 azure-core-1.8.0 azure-storage-blob-12.3.2 catboost-0.24 combo-0.1.1 confuse-1.3.0 cryptography-3.0 databricks-cli-0.11.0 datefinder-0.7.1 docker-4.3.0 funcy-1.14 gitdb-4.0.5 gitpython-3.1.7 gorilla-0.3.0 gunicorn-20.0.4 htmlmin-0.1.12 imagehash-4.1.0 isodate-0.6.0 kmodes-0.10.2 lightgbm-2.3.1 mlflow-1.10.0 msrest-0.6.18 pandas-profiling-2.8.0 phik-0.10.0 prometheus-flask-exporter-0.15.4 pyLDAvis-2.1.2 pycaret-2.0 pyod-0.8.1 python-editor-1.0.4 querystring-parser-1.2.4 scikit-learn-0.23.2 smmap-3.0.4 sqlalchemy-1.3.13 suod-0.0.4 tangled-up-in-unicode-0.0.6 threadpoolctl-2.1.0 tqdm-4.48.2 visions-0.4.4 websocket-client-0.57.0 yellowbrick-1.1 zope.interface-5.1.0\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "JsQcMBDJjmM-",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Importing libraries\n",
        "\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "import pycaret\n"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zx-m_QyMk0X4",
        "colab_type": "text"
      },
      "source": [
        "## Loading the data"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1a5iBP3Nk3DE",
        "colab_type": "text"
      },
      "source": [
        "Dataset information: The datasets contains transactions made by credit cards in September 2013 by european cardholders.\n",
        "This dataset presents transactions that occurred in two days, where we have 492 frauds out of 284,807 transactions. The dataset is highly unbalanced, the positive class (frauds) account for 0.172% of all transactions.\n",
        "\n",
        "It contains only numerical input variables which are the result of a PCA transformation.\n",
        "\n",
        "This dataset was a part of Kaggle Competition too, where the participants needed to predict wether the transaction was a fraud one or normal.\n",
        "\n",
        "Link to the competition: https://www.kaggle.com/mlg-ulb/creditcardfraud"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WnXMK-pOj7Yc",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 216
        },
        "outputId": "098882af-b7b8-4458-d5fb-6c350fc968a0"
      },
      "source": [
        "df=pd.read_csv(\"/content/drive/My Drive/creditcard.csv\")\n",
        "df.head()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Time</th>\n",
              "      <th>V1</th>\n",
              "      <th>V2</th>\n",
              "      <th>V3</th>\n",
              "      <th>V4</th>\n",
              "      <th>V5</th>\n",
              "      <th>V6</th>\n",
              "      <th>V7</th>\n",
              "      <th>V8</th>\n",
              "      <th>V9</th>\n",
              "      <th>V10</th>\n",
              "      <th>V11</th>\n",
              "      <th>V12</th>\n",
              "      <th>V13</th>\n",
              "      <th>V14</th>\n",
              "      <th>V15</th>\n",
              "      <th>V16</th>\n",
              "      <th>V17</th>\n",
              "      <th>V18</th>\n",
              "      <th>V19</th>\n",
              "      <th>V20</th>\n",
              "      <th>V21</th>\n",
              "      <th>V22</th>\n",
              "      <th>V23</th>\n",
              "      <th>V24</th>\n",
              "      <th>V25</th>\n",
              "      <th>V26</th>\n",
              "      <th>V27</th>\n",
              "      <th>V28</th>\n",
              "      <th>Amount</th>\n",
              "      <th>Class</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>0.0</td>\n",
              "      <td>-1.359807</td>\n",
              "      <td>-0.072781</td>\n",
              "      <td>2.536347</td>\n",
              "      <td>1.378155</td>\n",
              "      <td>-0.338321</td>\n",
              "      <td>0.462388</td>\n",
              "      <td>0.239599</td>\n",
              "      <td>0.098698</td>\n",
              "      <td>0.363787</td>\n",
              "      <td>0.090794</td>\n",
              "      <td>-0.551600</td>\n",
              "      <td>-0.617801</td>\n",
              "      <td>-0.991390</td>\n",
              "      <td>-0.311169</td>\n",
              "      <td>1.468177</td>\n",
              "      <td>-0.470401</td>\n",
              "      <td>0.207971</td>\n",
              "      <td>0.025791</td>\n",
              "      <td>0.403993</td>\n",
              "      <td>0.251412</td>\n",
              "      <td>-0.018307</td>\n",
              "      <td>0.277838</td>\n",
              "      <td>-0.110474</td>\n",
              "      <td>0.066928</td>\n",
              "      <td>0.128539</td>\n",
              "      <td>-0.189115</td>\n",
              "      <td>0.133558</td>\n",
              "      <td>-0.021053</td>\n",
              "      <td>149.62</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.0</td>\n",
              "      <td>1.191857</td>\n",
              "      <td>0.266151</td>\n",
              "      <td>0.166480</td>\n",
              "      <td>0.448154</td>\n",
              "      <td>0.060018</td>\n",
              "      <td>-0.082361</td>\n",
              "      <td>-0.078803</td>\n",
              "      <td>0.085102</td>\n",
              "      <td>-0.255425</td>\n",
              "      <td>-0.166974</td>\n",
              "      <td>1.612727</td>\n",
              "      <td>1.065235</td>\n",
              "      <td>0.489095</td>\n",
              "      <td>-0.143772</td>\n",
              "      <td>0.635558</td>\n",
              "      <td>0.463917</td>\n",
              "      <td>-0.114805</td>\n",
              "      <td>-0.183361</td>\n",
              "      <td>-0.145783</td>\n",
              "      <td>-0.069083</td>\n",
              "      <td>-0.225775</td>\n",
              "      <td>-0.638672</td>\n",
              "      <td>0.101288</td>\n",
              "      <td>-0.339846</td>\n",
              "      <td>0.167170</td>\n",
              "      <td>0.125895</td>\n",
              "      <td>-0.008983</td>\n",
              "      <td>0.014724</td>\n",
              "      <td>2.69</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1.0</td>\n",
              "      <td>-1.358354</td>\n",
              "      <td>-1.340163</td>\n",
              "      <td>1.773209</td>\n",
              "      <td>0.379780</td>\n",
              "      <td>-0.503198</td>\n",
              "      <td>1.800499</td>\n",
              "      <td>0.791461</td>\n",
              "      <td>0.247676</td>\n",
              "      <td>-1.514654</td>\n",
              "      <td>0.207643</td>\n",
              "      <td>0.624501</td>\n",
              "      <td>0.066084</td>\n",
              "      <td>0.717293</td>\n",
              "      <td>-0.165946</td>\n",
              "      <td>2.345865</td>\n",
              "      <td>-2.890083</td>\n",
              "      <td>1.109969</td>\n",
              "      <td>-0.121359</td>\n",
              "      <td>-2.261857</td>\n",
              "      <td>0.524980</td>\n",
              "      <td>0.247998</td>\n",
              "      <td>0.771679</td>\n",
              "      <td>0.909412</td>\n",
              "      <td>-0.689281</td>\n",
              "      <td>-0.327642</td>\n",
              "      <td>-0.139097</td>\n",
              "      <td>-0.055353</td>\n",
              "      <td>-0.059752</td>\n",
              "      <td>378.66</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1.0</td>\n",
              "      <td>-0.966272</td>\n",
              "      <td>-0.185226</td>\n",
              "      <td>1.792993</td>\n",
              "      <td>-0.863291</td>\n",
              "      <td>-0.010309</td>\n",
              "      <td>1.247203</td>\n",
              "      <td>0.237609</td>\n",
              "      <td>0.377436</td>\n",
              "      <td>-1.387024</td>\n",
              "      <td>-0.054952</td>\n",
              "      <td>-0.226487</td>\n",
              "      <td>0.178228</td>\n",
              "      <td>0.507757</td>\n",
              "      <td>-0.287924</td>\n",
              "      <td>-0.631418</td>\n",
              "      <td>-1.059647</td>\n",
              "      <td>-0.684093</td>\n",
              "      <td>1.965775</td>\n",
              "      <td>-1.232622</td>\n",
              "      <td>-0.208038</td>\n",
              "      <td>-0.108300</td>\n",
              "      <td>0.005274</td>\n",
              "      <td>-0.190321</td>\n",
              "      <td>-1.175575</td>\n",
              "      <td>0.647376</td>\n",
              "      <td>-0.221929</td>\n",
              "      <td>0.062723</td>\n",
              "      <td>0.061458</td>\n",
              "      <td>123.50</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2.0</td>\n",
              "      <td>-1.158233</td>\n",
              "      <td>0.877737</td>\n",
              "      <td>1.548718</td>\n",
              "      <td>0.403034</td>\n",
              "      <td>-0.407193</td>\n",
              "      <td>0.095921</td>\n",
              "      <td>0.592941</td>\n",
              "      <td>-0.270533</td>\n",
              "      <td>0.817739</td>\n",
              "      <td>0.753074</td>\n",
              "      <td>-0.822843</td>\n",
              "      <td>0.538196</td>\n",
              "      <td>1.345852</td>\n",
              "      <td>-1.119670</td>\n",
              "      <td>0.175121</td>\n",
              "      <td>-0.451449</td>\n",
              "      <td>-0.237033</td>\n",
              "      <td>-0.038195</td>\n",
              "      <td>0.803487</td>\n",
              "      <td>0.408542</td>\n",
              "      <td>-0.009431</td>\n",
              "      <td>0.798278</td>\n",
              "      <td>-0.137458</td>\n",
              "      <td>0.141267</td>\n",
              "      <td>-0.206010</td>\n",
              "      <td>0.502292</td>\n",
              "      <td>0.219422</td>\n",
              "      <td>0.215153</td>\n",
              "      <td>69.99</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   Time        V1        V2        V3  ...       V27       V28  Amount  Class\n",
              "0   0.0 -1.359807 -0.072781  2.536347  ...  0.133558 -0.021053  149.62      0\n",
              "1   0.0  1.191857  0.266151  0.166480  ... -0.008983  0.014724    2.69      0\n",
              "2   1.0 -1.358354 -1.340163  1.773209  ... -0.055353 -0.059752  378.66      0\n",
              "3   1.0 -0.966272 -0.185226  1.792993  ...  0.062723  0.061458  123.50      0\n",
              "4   2.0 -1.158233  0.877737  1.548718  ...  0.219422  0.215153   69.99      0\n",
              "\n",
              "[5 rows x 31 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Fqex7yyBkU0k",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 33
        },
        "outputId": "23d47664-7951-430e-82c3-8a649a6eeb95"
      },
      "source": [
        "df.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(284807, 31)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "10VMelselhZp",
        "colab_type": "text"
      },
      "source": [
        "Our dataset contains 24000 rows and 24 columns"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "gtKOmecwkC1c",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 552
        },
        "outputId": "4bf99b69-a5f2-47de-83fd-40dd34169edf"
      },
      "source": [
        "df.isnull().sum()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Time      0\n",
              "V1        0\n",
              "V2        0\n",
              "V3        0\n",
              "V4        0\n",
              "V5        0\n",
              "V6        0\n",
              "V7        0\n",
              "V8        0\n",
              "V9        0\n",
              "V10       0\n",
              "V11       0\n",
              "V12       0\n",
              "V13       0\n",
              "V14       0\n",
              "V15       0\n",
              "V16       0\n",
              "V17       0\n",
              "V18       0\n",
              "V19       0\n",
              "V20       0\n",
              "V21       0\n",
              "V22       0\n",
              "V23       0\n",
              "V24       0\n",
              "V25       0\n",
              "V26       0\n",
              "V27       0\n",
              "V28       0\n",
              "Amount    0\n",
              "Class     0\n",
              "dtype: int64"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KIL4GyhQloaz",
        "colab_type": "text"
      },
      "source": [
        "There are no null values as observed from above table"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MLFyMW2Gppu7",
        "colab_type": "text"
      },
      "source": [
        "Now, let's check for the count of positive and negative classes in our dataset"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "rCPuWVd8kKYc",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 278
        },
        "outputId": "3606d26b-bbdd-4805-f4f5-5edca872a14d"
      },
      "source": [
        "df[\"Class\"].value_counts().plot.bar(legend=None)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7fe9e5798160>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "x7kKRuulE72M",
        "colab_type": "text"
      },
      "source": [
        "This is a highly imablanced dataset."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hGF3OuZMq1ra",
        "colab_type": "text"
      },
      "source": [
        "## Problem with imbalanced dataset: \n",
        "We need to deal with the dataset in a correct way. When we will train our model than our model will achieve high accuracy but our trained model will predict a negative class in maximum number of cases. So, we also need to keep in mind the precision and recall score in such scenarios. \n",
        "\n",
        "This problem is predominant in scenarios where anomaly detection is crucial like electricity pilferage, fraudulent transactions in banks, identification of rare diseases, etc. In this situation, the predictive model developed using conventional machine learning algorithms could be biased and inaccurate.\n",
        "\n",
        "This happens because Machine Learning Algorithms are usually designed to improve accuracy by reducing the error. Thus, they do not take into account the class distribution / proportion or balance of classes.\n",
        "\n",
        "This guide describes various approaches for solving such class imbalance problems using Pycaret. "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Uch03o6zsn-h",
        "colab_type": "text"
      },
      "source": [
        "## Prepairing the setup"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_gxUecGVsnAM",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from pycaret.classification import *\n"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0MDZGQo6p9bC",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 918,
          "referenced_widgets": [
            "8ee681b3cab9472288464fdf80693c6e",
            "5c1c4d93291641559f6d93b1892fea91",
            "5a6a4f0a323a4daa86102db105e3d74a",
            "ff10c25a56174172badfa0a4b2e3303e",
            "d9d4492982e34abb8bdddbe04215c1dd",
            "7ff6bda982ce4d8b8a8482062f4d90e7"
          ]
        },
        "outputId": "83e78dd2-5f0e-41f5-c586-2820d8e2da5e"
      },
      "source": [
        "clf=setup(data=df,target='Class',fix_imbalance=True) #fix_imbalance will automaticaaly fix the imbalanced dataset by oversampling using the SMOTE method."
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Setup Succesfully Completed!\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<style  type=\"text/css\" >\n",
              "    #T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row42_col1 {\n",
              "            background-color:  lightgreen;\n",
              "        }</style><table id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Description</th>        <th class=\"col_heading level0 col1\" >Value</th>    </tr></thead><tbody>\n",
              "                <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row0_col0\" class=\"data row0 col0\" >session_id</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row0_col1\" class=\"data row0 col1\" >1332</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row1_col0\" class=\"data row1 col0\" >Target Type</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row1_col1\" class=\"data row1 col1\" >Binary</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row2_col0\" class=\"data row2 col0\" >Label Encoded</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row2_col1\" class=\"data row2 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row3_col0\" class=\"data row3 col0\" >Original Data</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row3_col1\" class=\"data row3 col1\" >(284807, 31)</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row4_col0\" class=\"data row4 col0\" >Missing Values </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row4_col1\" class=\"data row4 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row5_col0\" class=\"data row5 col0\" >Numeric Features </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row5_col1\" class=\"data row5 col1\" >30</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row6_col0\" class=\"data row6 col0\" >Categorical Features </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row6_col1\" class=\"data row6 col1\" >0</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row7_col0\" class=\"data row7 col0\" >Ordinal Features </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row7_col1\" class=\"data row7 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row8_col0\" class=\"data row8 col0\" >High Cardinality Features </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row8_col1\" class=\"data row8 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row9_col0\" class=\"data row9 col0\" >High Cardinality Method </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row9_col1\" class=\"data row9 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row10\" class=\"row_heading level0 row10\" >10</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row10_col0\" class=\"data row10 col0\" >Sampled Data</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row10_col1\" class=\"data row10 col1\" >(199364, 31)</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row11\" class=\"row_heading level0 row11\" >11</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row11_col0\" class=\"data row11 col0\" >Transformed Train Set</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row11_col1\" class=\"data row11 col1\" >(139554, 30)</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row12\" class=\"row_heading level0 row12\" >12</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row12_col0\" class=\"data row12 col0\" >Transformed Test Set</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row12_col1\" class=\"data row12 col1\" >(59810, 30)</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row13\" class=\"row_heading level0 row13\" >13</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row13_col0\" class=\"data row13 col0\" >Numeric Imputer </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row13_col1\" class=\"data row13 col1\" >mean</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row14\" class=\"row_heading level0 row14\" >14</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row14_col0\" class=\"data row14 col0\" >Categorical Imputer </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row14_col1\" class=\"data row14 col1\" >constant</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row15\" class=\"row_heading level0 row15\" >15</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row15_col0\" class=\"data row15 col0\" >Normalize </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row15_col1\" class=\"data row15 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row16\" class=\"row_heading level0 row16\" >16</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row16_col0\" class=\"data row16 col0\" >Normalize Method </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row16_col1\" class=\"data row16 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row17\" class=\"row_heading level0 row17\" >17</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row17_col0\" class=\"data row17 col0\" >Transformation </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row17_col1\" class=\"data row17 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row18\" class=\"row_heading level0 row18\" >18</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row18_col0\" class=\"data row18 col0\" >Transformation Method </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row18_col1\" class=\"data row18 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row19\" class=\"row_heading level0 row19\" >19</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row19_col0\" class=\"data row19 col0\" >PCA </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row19_col1\" class=\"data row19 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row20\" class=\"row_heading level0 row20\" >20</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row20_col0\" class=\"data row20 col0\" >PCA Method </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row20_col1\" class=\"data row20 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row21\" class=\"row_heading level0 row21\" >21</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row21_col0\" class=\"data row21 col0\" >PCA Components </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row21_col1\" class=\"data row21 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row22\" class=\"row_heading level0 row22\" >22</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row22_col0\" class=\"data row22 col0\" >Ignore Low Variance </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row22_col1\" class=\"data row22 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row23\" class=\"row_heading level0 row23\" >23</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row23_col0\" class=\"data row23 col0\" >Combine Rare Levels </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row23_col1\" class=\"data row23 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row24\" class=\"row_heading level0 row24\" >24</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row24_col0\" class=\"data row24 col0\" >Rare Level Threshold </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row24_col1\" class=\"data row24 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row25\" class=\"row_heading level0 row25\" >25</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row25_col0\" class=\"data row25 col0\" >Numeric Binning </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row25_col1\" class=\"data row25 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row26\" class=\"row_heading level0 row26\" >26</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row26_col0\" class=\"data row26 col0\" >Remove Outliers </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row26_col1\" class=\"data row26 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row27\" class=\"row_heading level0 row27\" >27</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row27_col0\" class=\"data row27 col0\" >Outliers Threshold </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row27_col1\" class=\"data row27 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row28\" class=\"row_heading level0 row28\" >28</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row28_col0\" class=\"data row28 col0\" >Remove Multicollinearity </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row28_col1\" class=\"data row28 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row29\" class=\"row_heading level0 row29\" >29</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row29_col0\" class=\"data row29 col0\" >Multicollinearity Threshold </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row29_col1\" class=\"data row29 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row30\" class=\"row_heading level0 row30\" >30</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row30_col0\" class=\"data row30 col0\" >Clustering </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row30_col1\" class=\"data row30 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row31\" class=\"row_heading level0 row31\" >31</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row31_col0\" class=\"data row31 col0\" >Clustering Iteration </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row31_col1\" class=\"data row31 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row32\" class=\"row_heading level0 row32\" >32</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row32_col0\" class=\"data row32 col0\" >Polynomial Features </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row32_col1\" class=\"data row32 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row33\" class=\"row_heading level0 row33\" >33</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row33_col0\" class=\"data row33 col0\" >Polynomial Degree </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row33_col1\" class=\"data row33 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row34\" class=\"row_heading level0 row34\" >34</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row34_col0\" class=\"data row34 col0\" >Trignometry Features </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row34_col1\" class=\"data row34 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row35\" class=\"row_heading level0 row35\" >35</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row35_col0\" class=\"data row35 col0\" >Polynomial Threshold </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row35_col1\" class=\"data row35 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row36\" class=\"row_heading level0 row36\" >36</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row36_col0\" class=\"data row36 col0\" >Group Features </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row36_col1\" class=\"data row36 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row37\" class=\"row_heading level0 row37\" >37</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row37_col0\" class=\"data row37 col0\" >Feature Selection </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row37_col1\" class=\"data row37 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row38\" class=\"row_heading level0 row38\" >38</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row38_col0\" class=\"data row38 col0\" >Features Selection Threshold </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row38_col1\" class=\"data row38 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row39\" class=\"row_heading level0 row39\" >39</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row39_col0\" class=\"data row39 col0\" >Feature Interaction </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row39_col1\" class=\"data row39 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row40\" class=\"row_heading level0 row40\" >40</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row40_col0\" class=\"data row40 col0\" >Feature Ratio </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row40_col1\" class=\"data row40 col1\" >False</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row41\" class=\"row_heading level0 row41\" >41</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row41_col0\" class=\"data row41 col0\" >Interaction Threshold </td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row41_col1\" class=\"data row41 col1\" >None</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row42\" class=\"row_heading level0 row42\" >42</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row42_col0\" class=\"data row42 col0\" >Fix Imbalance</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row42_col1\" class=\"data row42 col1\" >True</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002level0_row43\" class=\"row_heading level0 row43\" >43</th>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row43_col0\" class=\"data row43 col0\" >Fix Imbalance Method</td>\n",
              "                        <td id=\"T_1cdb2e80_dcae_11ea_9203_0242ac1c0002row43_col1\" class=\"data row43 col1\" >SMOTE</td>\n",
              "            </tr>\n",
              "    </tbody></table>"
            ],
            "text/plain": [
              "<pandas.io.formats.style.Styler at 0x7fe9b31fcc50>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nQyNyXctwAGx",
        "colab_type": "text"
      },
      "source": [
        "### SMOTE method: SMOTe is a technique based on nearest neighbors judged by Euclidean Distance between data points in feature space. There is a percentage of Over-Sampling which indicates the number of synthetic samples to be created and this percentage parameter of Over-sampling is always a multiple of 100."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SU3zRpKcVgi0",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Uncomment the following code to compare the performance of all the classification models\n",
        "\n",
        "\n",
        "#compare_models() "
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PBAqx-IuPGb5",
        "colab_type": "text"
      },
      "source": [
        "## We will choose the model with high precision because here we need to have a high precision than high accuracy or high recalls.\n",
        "\n",
        "This link will provide you some overview of precision and recall.\n",
        "Link: https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wNdaW3J5V3rk",
        "colab_type": "text"
      },
      "source": [
        "We are creating the random forest classifier because it works really well with these types of dataset. You can have a quick view of the different models using 'compare_models()'"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VyL_yFwjPxBl",
        "colab_type": "text"
      },
      "source": [
        "# Using GPU for training our model\n",
        "\n",
        "Pycaret 2.0 now supports training XGBoost and LightGBM on the GPU. Here, we train a LightGBM(Light Gradient Boosting Machine) on the GPU and it only took around 50 seconds. Earlier training this model on CPU took around 50 minutes. \n",
        "We just need to type the following code and execute it:\n",
        "\n",
        ">create_model('lightgbm', tree_method = 'gpu_hist', gpi_id = 0)\n",
        "\n",
        "For more information on LightGBM, the link is: https://lightgbm.readthedocs.io/en/latest/"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0RHd8qp1wL9Y",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 390,
          "referenced_widgets": [
            "e42a59c320bb41a4909111c017f2a2c0",
            "8770095900034d968ea3bb7114f2aea1",
            "40a52b22f3c74f9cb92601a9335b11f6"
          ]
        },
        "outputId": "7577e9a5-b275-452e-99bd-f3c62f97e753"
      },
      "source": [
        "import six\n",
        "import sys\n",
        "sys.modules['sklearn.externals.six'] = six\n",
        "\n",
        "classifier=create_model('lightgbm', tree_method = 'gpu_hist', gpi_id = 0)\n",
        "print(classifier)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<style  type=\"text/css\" >\n",
              "    #T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col0 {\n",
              "            background:  yellow;\n",
              "        }    #T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col1 {\n",
              "            background:  yellow;\n",
              "        }    #T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col2 {\n",
              "            background:  yellow;\n",
              "        }    #T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col3 {\n",
              "            background:  yellow;\n",
              "        }    #T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col4 {\n",
              "            background:  yellow;\n",
              "        }    #T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col5 {\n",
              "            background:  yellow;\n",
              "        }    #T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col6 {\n",
              "            background:  yellow;\n",
              "        }</style><table id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Accuracy</th>        <th class=\"col_heading level0 col1\" >AUC</th>        <th class=\"col_heading level0 col2\" >Recall</th>        <th class=\"col_heading level0 col3\" >Prec.</th>        <th class=\"col_heading level0 col4\" >F1</th>        <th class=\"col_heading level0 col5\" >Kappa</th>        <th class=\"col_heading level0 col6\" >MCC</th>    </tr></thead><tbody>\n",
              "                <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row0_col0\" class=\"data row0 col0\" >0.9989</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row0_col1\" class=\"data row0 col1\" >0.9622</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row0_col2\" class=\"data row0 col2\" >0.7500</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row0_col3\" class=\"data row0 col3\" >0.6429</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row0_col4\" class=\"data row0 col4\" >0.6923</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row0_col5\" class=\"data row0 col5\" >0.6917</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row0_col6\" class=\"data row0 col6\" >0.6938</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row1_col0\" class=\"data row1 col0\" >0.9995</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row1_col1\" class=\"data row1 col1\" >0.9167</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row1_col2\" class=\"data row1 col2\" >0.9167</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row1_col3\" class=\"data row1 col3\" >0.8148</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row1_col4\" class=\"data row1 col4\" >0.8627</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row1_col5\" class=\"data row1 col5\" >0.8625</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row1_col6\" class=\"data row1 col6\" >0.8640</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row2_col0\" class=\"data row2 col0\" >0.9989</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row2_col1\" class=\"data row2 col1\" >0.8458</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row2_col2\" class=\"data row2 col2\" >0.7083</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row2_col3\" class=\"data row2 col3\" >0.6538</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row2_col4\" class=\"data row2 col4\" >0.6800</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row2_col5\" class=\"data row2 col5\" >0.6794</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row2_col6\" class=\"data row2 col6\" >0.6800</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row3_col0\" class=\"data row3 col0\" >0.9992</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row3_col1\" class=\"data row3 col1\" >0.9145</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row3_col2\" class=\"data row3 col2\" >0.6400</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row3_col3\" class=\"data row3 col3\" >0.8889</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row3_col4\" class=\"data row3 col4\" >0.7442</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row3_col5\" class=\"data row3 col5\" >0.7438</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row3_col6\" class=\"data row3 col6\" >0.7539</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row4_col0\" class=\"data row4 col0\" >0.9988</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row4_col1\" class=\"data row4 col1\" >0.9269</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row4_col2\" class=\"data row4 col2\" >0.7083</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row4_col3\" class=\"data row4 col3\" >0.6296</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row4_col4\" class=\"data row4 col4\" >0.6667</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row4_col5\" class=\"data row4 col5\" >0.6661</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row4_col6\" class=\"data row4 col6\" >0.6672</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row5_col0\" class=\"data row5 col0\" >0.9996</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row5_col1\" class=\"data row5 col1\" >0.9555</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row5_col2\" class=\"data row5 col2\" >0.9167</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row5_col3\" class=\"data row5 col3\" >0.8462</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row5_col4\" class=\"data row5 col4\" >0.8800</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row5_col5\" class=\"data row5 col5\" >0.8798</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row5_col6\" class=\"data row5 col6\" >0.8805</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row6_col0\" class=\"data row6 col0\" >0.9988</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row6_col1\" class=\"data row6 col1\" >0.8878</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row6_col2\" class=\"data row6 col2\" >0.7083</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row6_col3\" class=\"data row6 col3\" >0.6296</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row6_col4\" class=\"data row6 col4\" >0.6667</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row6_col5\" class=\"data row6 col5\" >0.6661</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row6_col6\" class=\"data row6 col6\" >0.6672</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row7_col0\" class=\"data row7 col0\" >0.9990</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row7_col1\" class=\"data row7 col1\" >0.9955</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row7_col2\" class=\"data row7 col2\" >0.8333</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row7_col3\" class=\"data row7 col3\" >0.6667</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row7_col4\" class=\"data row7 col4\" >0.7407</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row7_col5\" class=\"data row7 col5\" >0.7402</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row7_col6\" class=\"data row7 col6\" >0.7449</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row8_col0\" class=\"data row8 col0\" >0.9994</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row8_col1\" class=\"data row8 col1\" >0.9980</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row8_col2\" class=\"data row8 col2\" >0.8750</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row8_col3\" class=\"data row8 col3\" >0.7778</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row8_col4\" class=\"data row8 col4\" >0.8235</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row8_col5\" class=\"data row8 col5\" >0.8232</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row8_col6\" class=\"data row8 col6\" >0.8246</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row9_col0\" class=\"data row9 col0\" >0.9991</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row9_col1\" class=\"data row9 col1\" >0.9691</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row9_col2\" class=\"data row9 col2\" >0.8750</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row9_col3\" class=\"data row9 col3\" >0.6774</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row9_col4\" class=\"data row9 col4\" >0.7636</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row9_col5\" class=\"data row9 col5\" >0.7632</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row9_col6\" class=\"data row9 col6\" >0.7695</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row10\" class=\"row_heading level0 row10\" >Mean</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col0\" class=\"data row10 col0\" >0.9991</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col1\" class=\"data row10 col1\" >0.9372</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col2\" class=\"data row10 col2\" >0.7932</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col3\" class=\"data row10 col3\" >0.7228</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col4\" class=\"data row10 col4\" >0.7520</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col5\" class=\"data row10 col5\" >0.7516</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row10_col6\" class=\"data row10 col6\" >0.7546</td>\n",
              "            </tr>\n",
              "            <tr>\n",
              "                        <th id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002level0_row11\" class=\"row_heading level0 row11\" >SD</th>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row11_col0\" class=\"data row11 col0\" >0.0003</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row11_col1\" class=\"data row11 col1\" >0.0457</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row11_col2\" class=\"data row11 col2\" >0.0961</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row11_col3\" class=\"data row11 col3\" >0.0938</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row11_col4\" class=\"data row11 col4\" >0.0758</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row11_col5\" class=\"data row11 col5\" >0.0759</td>\n",
              "                        <td id=\"T_8f7be466_dcae_11ea_9203_0242ac1c0002row11_col6\" class=\"data row11 col6\" >0.0759</td>\n",
              "            </tr>\n",
              "    </tbody></table>"
            ],
            "text/plain": [
              "<pandas.io.formats.style.Styler at 0x7fe9b0037a58>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "LGBMClassifier(boosting_type='gbdt', class_weight=None, colsample_bytree=1.0,\n",
            "               gpi_id=0, importance_type='split', learning_rate=0.1,\n",
            "               max_depth=-1, min_child_samples=20, min_child_weight=0.001,\n",
            "               min_split_gain=0.0, n_estimators=100, n_jobs=-1, num_leaves=31,\n",
            "               objective=None, random_state=1332, reg_alpha=0.0, reg_lambda=0.0,\n",
            "               silent=True, subsample=1.0, subsample_for_bin=200000,\n",
            "               subsample_freq=0, tree_method='gpu_hist')\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "aOH_EldwQ5Rt",
        "colab_type": "text"
      },
      "source": [
        "## Classification plots"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kjbCMz7KQ43s",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 401,
          "referenced_widgets": [
            "5ed480b9b8df4018a30e5be63fbbcf5f",
            "e99637a59a544b6badbf33007f55c873",
            "4679b95a7af6455ab2fcd4a73cdcf508"
          ]
        },
        "outputId": "9167b52f-b68a-46e4-d2c1-e1d7eedace41"
      },
      "source": [
        "# Plotting the classification report\n",
        "plot_model(classifier,plot='class_report')\n"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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iBQBe/bsISIigqVLlxIcHExwcLDV8kmTJvHiiy+yfPlybG1tuXjx4i3bU0AQEREpAnbu3Imfnx8Avr6+JCUlkZKSAkBubi779++nffv2AAQFBVGhQoVbtqeAICIiUgTExcXh6elpmfby8iI2NhaAhIQEXF1dmThxIs8++ywff/zxbdtTQBARESmCzGaz1c/R0dH07duXRYsWcezYMX799ddbbq+AICIiUgR4e3sTFxdnmY6JiaFMmTIAeHp6UqFCBSpXroytrS0tW7bk1KlTt2xPAUFERKQIaNWqFaGhoQAcPXoUb29v3NzcALCzs7uHyYkAAB52SURBVKNSpUr8+eefluXVqlW7ZXu6zFFERKQIaNKkCXXr1iUwMBCTyURQUBAhISG4u7vj7+/PyJEjGTFiBGazmVq1allOWLwZBQQREZEiYujQoVbTderUsfxcpUoVlixZcsdtaYhBREREDBQQRERExEABQURERAwUEERERMRAAUFEREQMFBBERETEQAFBREREDBQQRERExEABQURERAx0J0UREZECZGpeElNG7t/bxrFkPlVzc+pBEBEREQMFBBERETFQQBAREREDBQQRERExUEAQERERAwUEERERMVBAEBEREQMFBBERETFQQBAREREDBQQRERExUEAQERERAwUEERERMVBAEBEREQMFBBERETFQQBAREREDu/xo1FRtBCZHx/xoWu4xm7e2FnYJcodMT6wu7BLkb3mosAuQO5JR2AX8a6kHQURERAzypQdhRrX2pF+Ky4+m5R4KMp/gfVPtwi5D7oCO1f1Fx+v+MeLq4cIu4V9LPQgiIiJioIAgIiIiBgoIIiIiYqCAICIiIgYKCCIiImKggCAiIiIGCggiIiJioIAgIiIiBgoIIiIiYqCAICIiIgYKCCIiImKggCAiIiIGCggiIiJioIAgIiIiBgoIIiIiYqCAICIiIgZ2hV2AiIhIcWKqVgJTTu7f28a2RD5Vc3PqQRAREREDBQQRERExUEAQERERAwUEERERMVBAEBEREQMFBBERETFQQBAREREDBQQRERExUEAQERERAwUEERGRImLChAn07NmTwMBADh8+fMN1Pv74Y/r06XPbthQQREREioA9e/YQERHB0qVLCQ4OJjg42LDO6dOn2bt37x21p4AgIiJSBOzcuRM/Pz8AfH19SUpKIiUlxWqdSZMm8eabb95RewoIIiIiRUBcXByenp6WaS8vL2JjYy3TISEhPPzww1SsWPGO2lNAEBERKYLMZrPl58TEREJCQnjhhRfueHsFBBERkSLA29ubuLg4y3RMTAxlypQBYNeuXSQkJNC7d28GDx7M0aNHmTBhwi3bU0AQEREpAlq1akVoaCgAR48exdvbGzc3NwA6derETz/9xPfff8+sWbOoW7cuI0eOvGV7dvlesYiIiOS7Jk2aULduXQIDAzGZTAQFBRESEoK7uzv+/v5/uz0FBBERkSJi6NChVtN16tQxrOPj48PChQtv25aGGERERMRAAUFEREQMFBBERETEQAFBREREDBQQRERExEABQURERAwUEERERMRAAUFEREQMFBBERETEQAFBREREDBQQRERExEABQURERAwUEERERMRAAUFEREQMFBBERETEQAFBREREDOwKuwAREZFipXoNsEn7e9vkukBq/pRzM+pBEBEREQMFBBERETFQQBAREREDBQQRERExUEAQERERAwUEERERMVBAEBEREQMFBBERETFQQBAREREDBQQRERExUEAQERERAwUEERERMVBAEBEREQMFBBERETFQQBAREREDBQQRERExUEAQERERAwUEERERMVBAEBEREQO7wi6goFVt14KAKcNwcHMhMeIiP77wLskXoq3W8e3YBr9Jb+NU0p2Yo6dZ0WcYVy8nYbK1xf/DodTs8hh2zo7snbWYHVO+AsDTtzJd547Do3J5stKu8uPzI4g6+Edh7GKRkl/Hy6tmVbp+9j7uFbzJycpi55R5HPpmZWHsYpGhY/Xv51GlIq+dCuVyeKRl3oU9h/nxxZE3fP9NNjYMOrrWqg238mXYPHo6e2Ytuukx9/vwHWo/2d6yjb2LE6mxCXzRtHuB7av8c8UqINi7ONPju6ks6tSfqAPHePi1PnT97H2WPPGKZR2X0p50X/IxC9r1JfrQcTpMeIuAj4axqv8oHnrpGSo2b8hnjZ7CztGBfru+5/yug5zbtp9ui6dweOGP7J29GN+A1vT4fjqzanUsxL29/+Xn8Xpq/kSOLF7Nvk+/xa1cGQYeWU3kzoMknPqz8Hb4PqZjdf9IvhDN7Acet5rX9JVnb/r+X7+ug5srLx9YwbHlobc85j8P/4ifh39k2a7z7CDi/ggvsH2Ue+OOhhgmTJhAz549CQwM5PDh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\n",
            "text/plain": [
              "<Figure size 576x396 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8ib3-Oc7X_6s",
        "colab_type": "text"
      },
      "source": [
        "### Here important point to notice is the precision, recall, and f1 score for the positive class that is '1'"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZdE1WS5cQ4q9",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 374,
          "referenced_widgets": [
            "cc04386edc0e4715a360050759b97b4f",
            "737a822faa684390ac7aed76ce9ee3c5",
            "8f169763f51c48d789ffbb36203813d1"
          ]
        },
        "outputId": "27d73fd2-68bb-4fdc-8224-5c880a85478a"
      },
      "source": [
        "# Plotting the confusion matrix\n",
        "plot_model(classifier,plot='confusion_matrix')\n"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAFlCAYAAAAki6s3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de3zP9f//8ft7m43J2MhpIocmp32S8yma2CyHEBbtK4eUD1OJkjGWUT6KIqQimhA5ZJkNJSXRpxxTznOYOWWO2+y9w/v3h5/3p3fbDNn2xO16ubhc2vP1fr9fj73zdtvr/X6937PYbDabAACAkZwKegAAAJAzQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINe4o1atX18mTJ7PddubMGb3xxhvy9/dXQECA/P39NWHCBCUnJztcv02bNvbt/fv317Fjxxy2DxkyJMtth4aGqnr16vavbTabPv30U7Vv317+/v564oknNHbsWF26dEmSNGLECM2YMeN2fduSpJ07d6pfv36SpGPHjqlNmzbq1KmTw/o/cenSJb355ptq27at/P39FRgYqDlz5uifvIPz0qVL6tSpk9q2batz587d9PXnz5+v995775b3/3d+fn7q0qVLlvUZM2aoevXqio+Pz/U2Fi9enOO23r17a/fu3f9oRuDvCDXuCsnJyXr22WdVoUIFRUdHKyYmRosWLVJcXJxGjx7tcNnIyEjFxMQoNjZWNWrU0Pjx4x227927V5cvX7Z/bbVatWvXLofLvPPOO4qOjtbs2bMVGxurlStXKi0tTS+88MI/Ctv1+Pr6avbs2ZKkX3/9Vffff7+++uorh/VblZmZqeeff16pqamKiopSbGys5syZo1WrVv2jUO7du1fnz5/XmjVr5OnpedPXf/bZZ/Xyyy/f8v6zk5iYqLi4OIe1devWycvLK9frnjlzRp988kmO2+fNm6datWr94xmBvyLUuCssX75cpUqV0qBBg+Ts7CxJ8vT01AcffKCJEyfmeL3GjRs7HFFLUqNGjbR27Vr71xs3blSdOnXsX58/f16RkZF6++23VaZMGUmSu7u7wsLC1L9//yyh3rZtm7p06aKAgAAFBgZq06ZNkqT09HSFhobK399fbdq00eDBg3X58uUc17ds2aI2bdpo27Zteuedd/T777+rY8eO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6+u5556zb792lLpt2zadOXNG/fr1kyRZrVZVqFBBR44ckbe3tzw9PSVJjRo10p49exz2sXPnTvvRsIeHhz766KMsc2zZskVJSUmaPn26JMnFxUVnz57Vvn37NGDAAElS48aNs/0enJ2ds3zYTXZcXFzk5OSknj17ysXFRYcOHdK5c+fUtGlTeXp66vnnn9fjjz+udu3aqVixYurQoYMmT56snTt3qnXr1mrdunWu+wDuZoQaKADXXqPOybVPdHN1dZWvr69mzZrlsH3Xrl0On+WcmZmZ5TYsFku263/l6uqqadOmycvLy2HdZrPJyenqKSw5xdjHx0dbt25VYGCgw/qOHTscnqr+9ddftXTpUi1dulTu7u4aMmSIJMnNzU0LFizQ7t27tX79ej399NNauHChAgMD1bx5c23cuFHTp0+Xr6+vhg4det3vA7ibcTIZYLA6depo586dOnPmjCRp9erVWrdunSpWrKj4+HhdvHhRNpvN/vrvX9WtW1c//PCDJOny5cvq1q2brFarLBaL0tLSJEn16tWzP/WcmJio8ePHS5KqVq1q/33i2d22JPXs2VMxMTHavHmzfS06OlqhoaH225eks2fPytvbW+7u7jp+/Li2b98uq9WqXbt2afny5apVq5YGDx6sWrVq6fDhw5o6daoyMjIUGBio0NBQbdu27Z/ejcAdjSNqwGBlypRRaGioXnjhBRUpUkSFCxfWxIkTVbx4cb344ovq1auXvL295e3trStXrjhct127dtq6dauCgoKUkZGhPn36yNXVVc2aNdOYMWM0cuRIhYaGKiwsTKtWrZLVatXAgQMlSYMGDdLrr7+umJgY1a1bN8vJYdLVZwXmz5+vcePGaeLEiSpcuLC8vb01d+5cubq62i/XrFkzzZkzR88884weeughhYSEaPr06Xr//fcVGxurL774Qq6urqpYsaIeffRRnThxQn379pWHh4cyMzMVEhKSt3cyYDg+QhQAAIPx1DcAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgsP8HCxogBX6pxdEAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vx-bh4yQXG7x",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}